运营商不给公网 IP?IPv6 了解一下

本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

IPv6,一直是「技术」大佬们口中常听到的词汇。但目前来说,IPv6 无法完全替代 IPv4,因为想要访问 IPv6 端的服务器,有很多限制。而 IPv6 的功能,其实是要比 IPv4 强很多的,不过由于门槛较高,很多人都对其「可望而不可及」。就没有一个教程,能让我一文读懂吗?真有!「什么值得买 App」创作者「袋鼠叔叔」就给大家带来了他详细的 IPv6 使用教程,快来一文 Get,变身技术达人!敲黑板,知识点来了!

本内容来源于 @什么值得买 APP,观点仅代表作者本人 |作者:袋鼠叔叔

IPv6 就是互联网协议第六版 (Internet Protocol v6),就是用来替代 IPv4 的,因为 IPv4 协议中所包含的 IP 地址太少了,10 年前就已经用光了。

IPv4 地址池中总共仅有不到 43 亿个 IP 地址,而 IPv6 的总地址数量达到 3.4x10 的 38 次方个。这是一个天文数字,几乎可以认为是无穷的。IPv6 的 IP 地址表达方式和之前也有很大区别:

在 IPv6 时代,甚至连地球上的每一粒沙子都能被分配一个 IP 地址,网络运营商也可以大方的为每一个用户家中的每一台终端设备分配独立 IP 地址,敞开了用!

Step 1:启用 IPv6 及防火墙设置

实际上,国内已经很早就开始推行 IPv6,工信部更是规定目前所有的家用网络及相关设备 (比如路由器 / 手机) 都必须支持 IPv6,只是很多时候出于对便捷性的考虑,在终端设备或者光猫上,IPv6 功能默认关闭。因此我们需要先将其开启。

网上大部分教程,教大家开通 IPv6,基本上都是告诉你要通过各种 “奇怪的” 手段获取光猫管理员超级密码,然后自己进去设置。这里非常不建议大家采用这种方式,因为光猫型号千千万,获取超密非常麻烦,新手大概率搞不定,反而会弄巧成拙,导致上不了网。

最好的办法,就是打电话到运营商客服,然后向客服小姐姐提四个需求:

1、帮我确认光猫的 IPv6 是否处于开通状态,没开通的话,请帮我开通。2、帮我把光猫改成桥接模式,我要从路由器拨号上网。3、帮我把光猫中 IPv6 的防火墙关闭。4、告诉我我家宽带的账号和密码。千万不要因为不好意思打电话而自己瞎搞,这是你作为宽带用户的合法权益。提出来之后,客服会直接从后台将配置下发给你家的光猫,或者是让当地的运维师傅联系你处理。运营商配置完毕之后,会发现上不了网了,这是因为光猫从拨号模式转为了桥接模式,我们先进入路由器,用路由器拨号即可。找到路由器的上网设置页面,然后上网方式选择 PPPoE,并输入自己家的宽带账号密码,点击确认连接。

拨号后,就可以正常访问网络了。然后进入自己家光猫的管理页面再次确认一下 IPv6 的状态。进入方式,账号和密码都是贴在光猫背面的。以我的电信华为 HS8145C5 光猫为例:打开 192.168.1.1 的管理页面后,不要使用右侧的 “用户登录” 界面,而是点击最下发的“快速装维入口”,字很小,容易错过,仔细看一下。

点击以后,会跳转一个新的登录界面,输入光猫背面的用户名和密码登录

进入管理页面后,首先找到业务信息,看一下光猫确实已经启用 IPv6 了,并且处于桥接 (电脑 / 路由器拨号) 状态

然后转到 IPv6 配置页面,看一下里面的相关 IPv6 参数都已经正确配置,其中 DNS 来源为家庭网关代理,DHCPv6 服务器已启用。

最后找到 IPv6 防火墙,确认处于关闭状态

光猫的 IPv6 状态都确认没问题之后,再进入路由器,找到 IPv6 设置,将其打开,上网方式选择 Native,同时关闭路由器的 IPv6 防火墙

确认应用之后,路由器的 IPv6 也打开了。我们再转到 Windows 服务器端,查看一下网络连接状态,是否已经出现了 IPv6 地址:

如果能看到公网 IPv6 地址的话,就说明电脑也已经正常启用 IPv6 了

这两组 IP 地址虽然不一样,但是都可以用,后期用哪个都行。IPv6 地址中,240e 开头是电信,2048 开头是联通,2409 开头是移动,FE80 开头是内网地址

如果没看到 IPv6 地址的话,可能是电脑本身没有启用 IPv6 功能,需要设置,路径如下:

控制面板—网络和 Internet—网络连接—找到正在使用的网卡,右键单击,然后点击属性,找到 Internet 协议版本 6(TCP/IP),然后勾选即可,属性中,IPv6 地址和 DNS 服务器都选择自动获取。

接下来进入 Windows denfender 防火墙,点击入站规则,找到 “文件和打印机共享 (回显请求 - ICMPv6-In)”,一般有三条,将所有条目的 “远程地址”由 “本地子网” 改成“任何”。这一步极其重要,否则无法实现 IPv6 外网访问。

现在光猫,路由器和电脑端所有关于 IPv6 的设置都已经完成了,我们来测试一下 IPv6。先测试 IPv6 从家里访问外网的连通性还是进入 http://test-ipv6.com 这个网站。如果看到所有的连接测试都成功,就说明从家里访问其他 IPv6 网站没有问题了。

接下来,再访问 http://ipw.cn/ipv6ping/ 这个网站,然后输入家里 Windows 主机的 IPv6 地址,从外网使用 IPv6 ping 一下自己。能 ping 通的话,就说明从外面的公网访问家里服务器没问题:

到此为止,我们整个的 IPv6 网络,无论是从家里访问其他网站,还是从外网访问家里的 Windows 服务器,都已经打通了。

Step 2:设置域名解析和动态域名解析

然现在已经可以正常访问,但是仍然需要解决两个问题,才能更方便。设置域名解析以及设置动态域名解析 (DDNS)。由于 IPv6 的地址特别长,而且极其复杂,如果使用 IP 地址直接访问的话,会非常麻烦。另外,和 IPv4 一样,运营商所提供的 IPv6 地址也会定期或在重启路由器后变动,因此设置 DNS 和 DDNS 是必须的。几乎所有路由器内置的 DDNS 都不支持 IPv6,所以我们之前设置 IPv4DDNS 的教程不再适用,而是需要遵循以下步骤。我这里以阿里云为例,其他服务商如腾讯云,百度云,华为云等设置都大同小异。首先,进入阿里云的域名购买网站,并登录账号 (可以用 TB 账号) 先购买一个自己喜欢的域名。如果在意性价比的话,选择. top 结尾的域名最便宜,一年只要 20 多块钱。当然如果不在意费用,其他域名都可以选,但不要选择以中文结尾的。注意,购买域名需要实名认证,并且一般需要数小时后才能通过,请耐心等待。经过实名认证以后,就可以看到自己购买的域名已经出现了,点击最后面的解析,就可以来到解析设置页面:

点击添加记录。

在添加记录中,填写如下信息后,点击确认即可。

回到解析页面后,可以看到现在域名解析已经显示出来了,并且状态为正常,就说明设置正确。

接下来,还是打开上面的 IPv6 ping 网站,不过这次填入域名代替 IPv6 地址,可以看到一切正常,以后就不再需要使用繁琐的 IPv6 地址,而是直接使用域名访问即可

域名解析已经设置完毕,但是如果重启路由器或者重新拨号,就会引发 IP 地址变动,原先的域名和 IP 地址解析就无法对应,因此接下来还需要设置动态域名解析 (DDNS)。前面已经说过,路由器不支持 IPv6 的 DDNS,所以我们使用 GitHub 上的一个开源项目 DDNS-GO 来实现。其实 Github 上还有其他不少 IPv6 DDNS 开源方案,但是 DDNS-GO 是我用下来感觉最方便 (傻瓜) 的。从 http://github.com/jeessy2/ddns-go/releases 进入项目 Release 页面,并展开 Assets 列表,下载最新 windows X86 版本,下载后解压缩,可以获得三个文件,将他们放在一个固定的文件夹中即可。

无需安装,直接双击打开 ddns-go 这个可执行文件,会直接开始运行,同时弹出配置页面。如果没有自动弹出配置页面的话,打开浏览器并输入 127.0.0.1:9876 即可。不过在填写具体配置内容之前,还需要登录阿里云控制台,先获得 Access Key 和 Secret。登录后,将鼠标指向右上角的头像,然后点击 AccessKey 管理

然后点击创建 AccessKey。通过手机验证之后,就会显示 Aliyun 账号的 AccessKey 和 Secret 这两组编码。记住,Secret 是只会出现一次的!以后再也不会提供查看功能,所以一定一定要把它复制粘贴下来,并妥善保管!

接下来,我们回到 DDNS-GO 的设置页面,并在 DNS 服务商中,选择 Alidns(阿里云),并填写 AccessKey 和 Secre,TTL 默认自动

继续往下,取消勾选 IPv4(不启用)勾选 IPv6 启用,然后选择 " 通过网卡获取 "。这里需要特别注意,一般 win 系统下都会有多个 IP 地址,如果服务器本身有 2 块网卡 (有线 + 无线) 的话,还会出现更多的 IP 地址,所以一定要去系统里核对一下,确认自己使用第几个 IP。在匹配正则表达式中,如果用第一个的话,就什么都不用填,用第二个,就填写 @2,第三个就填写 @3,以此类推。

最后,其它配置是关于公网登陆 DDNS-GO 配置页面的。如果觉得没什么用,禁止即可。如果需要的话,请设置用户名和密码。Webhook 是可以通过调用钉钉或者微信的 Api,在 IPv6 地址发生变化时,直接推送信息到手机,暂时不设置也可以,用处不是很大。全部设置完成后,点击左下角 SAVE 保存配置。

保存完成后,关闭浏览器,打开 DDNS-GO 的命令行页面,可以看到 DDNS-GO 已经在正常运行了,并且每五分钟会自动比对一次 IP 地址,一旦发生变化,就会自动通过 Aliyun 的 AccessKey,将新的 IP 地址更新到 Aliyun DNS 页面中

最后,还需要将 DDNS-GO 设置成开机自启动,同时自启动后将窗口最小化,实现无感运行。先关闭窗口,然后鼠标右键点击 ddns-go.exe—创建快捷方式。创建好快捷方式后,右键单击并点击 “属性”,然后将运行方式调整为 “最小化”,确定保存退出。

回到系统桌面,快捷键 win+R 呼出运行菜单,输入以下命令 “shell:common startup” 回车后,会弹出一个” 启动 “文件夹。直接将 DDNS-GO 的快捷方式拽带这个文件夹中,就可以实现开机自动启动同时最小化窗口了。拖拽过程中需要给到管理员权限。

现在,DDNS-GO 每次开机时就会自动启动并检测 IPv6 地址的变化,至此这一部分就完成了。

Step 3: 外网访问 RD(远程桌面) 及更多

1、远程桌面外网通过 IPv6 实现 Windows 远程桌面访问,方法是非常非常简单的。无论 PC,MacOS,IOS 还是安卓,直接下载对应版本的微软远程桌面应用,打开后把自己的 IPv6 关联域名填进去,然后输入服务器本地账号密码即可,其他内容一概无需填写:

**2、共享文件夹(PC 端 SMB)**在 IPv6 公网下,从 PC 端访问服务器共享文件夹,使用 Windows 自带的 SMB 协议即可。打开 “此电脑”,点击最上方“查看” 旁边的三个点,点击映射网络驱动器。

然后按照以下格式输入域名及想访问的盘符及用户名密码即可。比如我这里想访问 C 盘,就输入 “域名 C”。

这样文件夹就一直显示在桌面了。同样道理,想访问 D 盘,把后缀换成 D 即可,以此类推。

3、共享文件夹 WebDav 手机端的共享,我们还是使用 WebDAV 协议。整个教程可以参考之前的文章第 5.5 章节。唯一不同的两点:

第一、需要将 WebDav 允许入站的地址设置为 “全部未分配”。设置路径—IIS 管理控制台—网站—点击右侧 “绑定”,将 IP 地址更改为全部未分配。

第二、访问时,需要将 WebDav 的内网端口号写在域名后面,记住一定是 WebDav 服务的内网端口号,不是外网端口号。

写在最后

以上,就是本期 IPv6 搭建技巧的全部内容了。相比 IPv4,使用 IPv6 进行公网访问的最大优势就是不用去求运营商要公网 IP,并且安全性也要更强。

但目前的网络访问环境对 IPv6 还是不够友好,大量终端仍然不支持 IPv6 协议,因此此方法仅适用于常用访问终端支持 IPv6 的小伙伴尝试。